From 3950bc9685ccb3e84878efbcd7fbe6f0cdfd4bd8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marcel=20M=C3=BCller?= Date: Fri, 11 Mar 2016 13:28:15 +0100 Subject: [PATCH] Warn if could not open docs in browser --- src/cargo/ops/cargo_doc.rs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/cargo/ops/cargo_doc.rs b/src/cargo/ops/cargo_doc.rs index 9c6ca350b..550090f89 100644 --- a/src/cargo/ops/cargo_doc.rs +++ b/src/cargo/ops/cargo_doc.rs @@ -54,7 +54,12 @@ pub fn doc(manifest_path: &Path, let target_dir = options.compile_opts.config.target_dir(&package); let path = target_dir.join("doc").join(&name).join("index.html"); if fs::metadata(&path).is_ok() { - open_docs(&path); + match open_docs(&path) { + Ok(_) => (), + Err(_) => { + println!("warning: could not determine a browser to open docs with."); + } + } } } @@ -62,44 +67,47 @@ pub fn doc(manifest_path: &Path, } #[cfg(not(any(target_os = "windows", target_os = "macos")))] -fn open_docs(path: &Path) { +fn open_docs(path: &Path) -> Result<(), ()> { // trying $BROWSER match env::var("BROWSER").map(|name| Command::new(name).arg(path).status()) { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () } // trying xdg-open match Command::new("xdg-open").arg(path).status() { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () }; // trying gnome-open match Command::new("gnome-open").arg(path).status() { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () }; // trying kde-open match Command::new("kde-open").arg(path).status() { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () }; + Err(()) } #[cfg(target_os = "windows")] -fn open_docs(path: &Path) { +fn open_docs(path: &Path) -> Result<(), ()> { match Command::new("cmd").arg("/C").arg("start").arg("").arg(path).status() { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () }; + Err(()) } #[cfg(target_os = "macos")] -fn open_docs(path: &Path) { +fn open_docs(path: &Path) -> Result<(), ()> { match Command::new("open").arg(path).status() { - Ok(_) => return, + Ok(_) => return Ok(()), Err(_) => () }; + Err(()) } -- 2.30.2